package org.colin.Tools.AudioUtil;

/**
 * @desc VideoInfo
 * @author wujiangbo
 * @date 2019年12月30日 下午4:12:12
 */
public class VideoInfo {

	/**
	 * The video stream decoder name.
	 */
	private String decoder;

	/**
	 * The video size. If null this information is not available.
	 */
	private VideoSize size = null;

	/**
	 * The video stream (average) bit rate. If less than 0, this information is not
	 * available.
	 */
	private int bitRate = -1;

	/**
	 * The video frame rate. If less than 0 this information is not available.
	 */
	private float frameRate = -1;

	/**
	 * Returns the video stream decoder name.
	 *
	 * @return The video stream decoder name.
	 */
	public String getDecoder() {
		return decoder;
	}

	/**
	 * Sets the video stream decoder name.
	 *
	 * @param decoder The video stream decoder name.
	 */
	void setDecoder(String codec) {
		this.decoder = codec;
	}

	/**
	 * Returns the video size. If null this information is not available.
	 *
	 * @return the size The video size.
	 */
	public VideoSize getSize() {
		return size;
	}

	/**
	 * Sets the video size.
	 *
	 * @param size The video size.
	 */
	void setSize(VideoSize size) {
		this.size = size;
	}

	/**
	 * Returns the video frame rate. If less than 0 this information is not
	 * available.
	 *
	 * @return The video frame rate.
	 */
	public float getFrameRate() {
		return frameRate;
	}

	/**
	 * Sets the video frame rate.
	 *
	 * @param frameRate The video frame rate.
	 */
	void setFrameRate(float frameRate) {
		this.frameRate = frameRate;
	}

	/**
	 * Returns the video stream (average) bit rate. If less than 0, this information
	 * is not available.
	 *
	 * @return The video stream (average) bit rate.
	 */
	public int getBitRate() {
		return bitRate;
	}

	/**
	 * Sets the video stream (average) bit rate.
	 *
	 * @param bitRate The video stream (average) bit rate.
	 */
	void setBitRate(int bitRate) {
		this.bitRate = bitRate;
	}

	@Override
	public String toString() {
		return getClass().getName() + " (decoder=" + decoder + ", size=" + size + ", bitRate=" + bitRate + ", frameRate=" + frameRate + ")";
	}
}
